{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "rolpXbud5axT" }, "source": [ "\"Open   \"Open" ] }, { "cell_type": "markdown", "metadata": { "id": "Dm8JgotGtYqz" }, "source": [ "## Day 6: (Example Implementation) Into the Mind of a Locust \n", "\n", "Once we have figured out how to implement neurons and networks, we can try to simulate a model of a small part of a Locust's nervous system." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cellView": "form", "colab": { "base_uri": "https://localhost:8080/" }, "id": "LJYNtkVYvCAT", "outputId": "f81c144f-ae3b-4da3-dee1-ec9463104a68" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "'wget' is not recognized as an internal or external command,\n", "operable program or batch file.\n" ] } ], "source": [ "#@markdown Import required files and code from previous tutorials\n", "\n", "!wget --no-check-certificate \\\n", " \"https://raw.githubusercontent.com/neurorishika/PSST/master/Tutorial/Example%20Implementation%20Locust%20AL/tf_integrator.py\" \\\n", " -O \"tf_integrator.py\"" ] }, { "cell_type": "markdown", "metadata": { "id": "u8uG0NNNtYq1" }, "source": [ "### A Locust Antennal Lobe\n", "\n", "To an insect, the sense of smell is its source of essential information about their surroundings. Whether it is getting attracted to a potential mate or finding a source of nutrition, odorants are known to trigger various behaviors in insects. Because of their simpler nervous systems and amazing ability to detect and track odors, insects are used to study olfaction to a great extent. Their most surprising ability is to track odors even in the very noisy natural environments. To study this neurobiology look a the dynamics of the networks involved in the processing of chemosensory information to the insect.\n", "\n", "Odorants are detected by receptors in olfactory receptor neurons (ORNs) which undergo a depolarization as a result. The antennal lobe (AL) in the insects' brain is considered to be the primary structure that receives input from ORNs within the antennae. It is the consensus that, since different sets of ORNs are activated by different odors, the coding of the odor identity is combinatorial in nature. Inside the Antennal Lobe, the input from the the ORNs is converted into complex long-lived dynamic transients and complex interacting signals which output to the mushroom body in the insect brain. Moreover, the network in the Locust Antennal Lobe seems to be a random network rather than a genetically encoded network with a particular fixed topology.\n", "\n", "The Locust AL has two types of neurons:\n", "1. **Inhibitory Local Interneurons (LN):** They produce GABAergic Synapses ie. GABAa (Fast) and Metabotropic GABA (Slow). They synapse onto other Local Interneurons and to Projection Neurons. A subset of them receive inputs from the ORNs.\n", "2. **Projection Neurons (PN):** They produce Cholinergic Synapses ie. Acetylcholine. They synapse onto local interneurons and also project to the mushroom body outside the AL and act as the output for the AL. A subset of them also receive inputs from the ORNs.\n", "\n", "\n", "#### A Model of the Locust AL\n", "\n", "The model described here is based on Bazhenov 2001b.\n", "\n", "\n", "\n", "**Total Number of Neurons** = 120 \n", "**Number of PNs** = 90 \n", "**Number of LNs** = 30 \n", "\n", "The connectivity is random with different connection probabilities as described below: \n", "\n", "**Probability(PN to PN)** = 0.0 \n", "**Probability(PN to LN)** = 0.5 \n", "**Probability(LN to LN)** = 0.5 \n", "**Probability(LN to PN)** = 0.5 \n", "\n", "33% of all neurons receive input from ORNs.\n", "\n", "##### Projection Neurons\n", "\n", "The projection neurons have an hodgkin huxley dynamics as described below:\n", "\n", "$$C_m \\frac{dV_{PN}}{dt} = I_{stim} - I_{L} - I_{Na} - I_{K} - I_{A} - I_{KL} - I_{GABA_a} -I_{Ach}$$\n", "\n", "It expresses voltage-gated $Na^+$ channels, voltage-gated $K^+$ channels, transient $K^+$ channels, $K^+$ leak channels and general leak channel. The Acetylcholine current is always zero in this model as PNs do not project to PNs.\n", "\n", "The PN currents and differential equation for dynamics are described below:\n", "\n", "\n", "\n", "##### Local Interneurons\n", "\n", "The Local Interneurons have an dynamics somewhat similar to hodgkin huxley as described below: \n", "\n", "$$C_m \\frac{dV_{LN}}{dt} = I_{stim} - I_{L} - I_{Ca} - I_{K} - I_{K(Ca)} - I_{KL} - I_{GABA_a} -I_{Ach}$$\n", "\n", "Unlike the Projection neuron, the local interneurons do not have the normal sodium potassium channel action potentials. They expresse voltage-gated $Ca^{2+}$ channels, voltage-gated $K^+$ channels, Calcium dependent $K^+$ channels, $K^+$ leak channels and general leak channel. Here, opposite interactions between K and Ca channels cause longer extended action potentials. The dynamics in intracellular $Ca^{2+}$ causes changes in K(Ca) channel dynamics allowing for adaptive behavior in the neurons.\n", "\n", "The LN currents and differential equation for dynamics are described below:\n", "\n", "\n", "\n", "##### Synaptic Dynamics\n", "\n", "Finally, the equation of the dynamics of the two types of synapses are given below.\n", "\n", "\n", "\n", "#### Importing Nerveflow\n", "\n", "Once the Integrator is saved in tf_integrator.py in the same directory as the Notebook, we can start importing the essentials including the integrator. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "4FR_xgwGtYq4", "outputId": "e6ac048b-88ff-474f-808f-90a5751d49c0" }, "outputs": [], "source": [ "import numpy as np\n", "import tensorflow.compat.v1 as tf\n", "tf.disable_eager_execution()\n", "import tf_integrator as tf_int\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "markdown", "metadata": { "id": "54nRA3GPtYq6" }, "source": [ "#### Defining Simulation Parameters\n", "\n", "Now we can start defining the parameters of the model. First, we define the length of the simulation and the time resolution and create the time array t." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "M2C-ovQ3tYq7" }, "outputs": [], "source": [ "sim_time = 1000 # simulation time (in ms)\n", "sim_res = 0.01 # simulation resolution (in ms)\n", "\n", "t = np.arange(0.0, sim_time, sim_res) # time array" ] }, { "cell_type": "markdown", "metadata": { "id": "ZWMsFJv1tYq8" }, "source": [ "Now we start implementing the details of the network. Since there are two different cell types they may have different properties/parameters. As you might remember, our parallelization paradigm allows us to have different values of parameters for different neurons/synapses by having parameter vectors. To make it easy for us to manipulate the information it is best for us to have a convection for splitting parameters into cell types.\n", "\n", "Here, we follow the convention that the first 90 values of each common parameter will be for PN cell type and the rest 30 will be for LN cell type. Unique parameters are defined whenever necessary." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "mMmxq2xJtYq9" }, "outputs": [], "source": [ "# Defining Neuron Counts\n", "\n", "n_n = int(120) # number of neurons\n", "\n", "p_n = int(90) # number of PNs\n", "l_n = int(30) # number of LNs\n", "\n", "C_m = [1.0]*n_n # Capacitance\n", "\n", "# Defining Common Current Parameters #\n", "\n", "g_K = [10.0]*n_n # K conductance\n", "g_L = [0.15]*n_n # Leak conductance\n", "g_KL = [0.05]*p_n + [0.02]*l_n # K leak conductance (first 90 for PNs and next 30 for LNs)\n", "\n", "E_K = [-95.0]*n_n # K Potential\n", "E_L = [-55.0]*p_n + [-50.0]*l_n # Leak Potential (first 90 for PNs and next 30 for LNs)\n", "E_KL = [-95.0]*n_n # K Leak Potential\n", "\n", "# Defining Cell Type Specific Current Parameters #\n", "\n", "## PNs\n", "\n", "g_Na = [100.0]*p_n # Na conductance\n", "g_A = [10.0]*p_n # Transient K conductance\n", "\n", "E_Na = [50.0]*p_n # Na Potential\n", "E_A = [-95.0]*p_n # Transient K Potential\n", "\n", "## LNs\n", "\n", "g_Ca = [3.0]*l_n # Ca conductance\n", "g_KCa = [0.3]*l_n # Ca dependent K conductance\n", "\n", "E_Ca = [140.0]*l_n # Ca Potential\n", "E_KCa = [-90]*l_n # Ca dependent K Potential\n", "\n", "A_Ca = [2*(10**(-4))]*l_n # Ca outflow rate\n", "Ca0 = [2.4*(10**(-4))]*l_n # Equilibrium Calcium Concentration\n", "t_Ca = [150]*l_n # Ca recovery time constant\n", "\n", "## Defining Firing Thresholds ##\n", "\n", "F_b = [0.0]*n_n # Fire threshold\n", "\n", "## Defining Acetylcholine Synapse Connectivity ##\n", "\n", "ach_mat = np.zeros((n_n,n_n)) # Ach Synapse Connectivity Matrix\n", "ach_mat[p_n:,:p_n] = np.random.choice([0.,1.],size=(l_n,p_n)) # 50% probability of PN -> LN\n", "np.fill_diagonal(ach_mat,0.) # Remove all self connection\n", "\n", "## Defining Acetylcholine Synapse Parameters ##\n", "\n", "n_syn_ach = int(np.sum(ach_mat)) # Number of Acetylcholine (Ach) Synapses \n", "alp_ach = [10.0]*n_syn_ach # Alpha for Ach Synapse\n", "bet_ach = [0.2]*n_syn_ach # Beta for Ach Synapse\n", "t_max = 0.3 # Maximum Time for Synapse\n", "t_delay = 0 # Axonal Transmission Delay\n", "A = [0.5]*n_n # Synaptic Response Strength\n", "g_ach = [0.35]*p_n+[0.3]*l_n # Ach Conductance\n", "E_ach = [0.0]*n_n # Ach Potential\n", "\n", "## Defining GABAa Synapse Connectivity ##\n", "\n", "fgaba_mat = np.zeros((n_n,n_n)) # GABAa Synapse Connectivity Matrix\n", "fgaba_mat[:,p_n:] = np.random.choice([0.,1.],size=(n_n,l_n)) # 50% probability of LN -> LN/PN\n", "np.fill_diagonal(fgaba_mat,0.) # No self connection\n", "\n", "## Defining GABAa Synapse Parameters ##\n", " \n", "n_syn_fgaba = int(np.sum(fgaba_mat)) # Number of GABAa (fGABA) Synapses\n", "alp_fgaba = [10.0]*n_syn_fgaba # Alpha for fGABA Synapse\n", "bet_fgaba = [0.16]*n_syn_fgaba # Beta for fGABA Synapse\n", "V0 = [-20.0]*n_n # Decay Potential\n", "sigma = [1.5]*n_n # Decay Time Constant\n", "g_fgaba = [0.8]*p_n+[0.8]*l_n # fGABA Conductance\n", "E_fgaba = [-70.0]*n_n # fGABA Potential" ] }, { "cell_type": "markdown", "metadata": { "id": "0VoNnGEstYq-" }, "source": [ "#### Visualizing the Connectivity\n", "\n", "Now that we have a connectivity matrix, we can visualize the connectivity as a heatmap. For this, we combine the two synapse connectivity matrix to get a single matrix that has +1 for excitatory connection and -1 for inhibitory connections. Then we use seaborn library to get a clean heatmap." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 413 }, "id": "bp2GktHOtYrA", "outputId": "214de6bc-eb7c-45a4-c5ae-2906ba2b779f" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(7,6))\n", "sns.heatmap(ach_mat-fgaba_mat, cmap=\"RdBu\")\n", "plt.xlabel(\"Presynaptic Neuron Number\")\n", "plt.ylabel(\"Postsynaptic Neuron Number\")\n", "plt.title(\"Network Connectivity\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "yDYz8NAEtYrC" }, "source": [ "#### Defining the functions to evaluate dynamics in gating variables\n", "\n", "Now, we define all the functions that will evaluate the equilibium value and time constants of gating variable for different channels." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "id": "NdxwrQJDtYrD" }, "outputs": [], "source": [ "def K_prop(V):\n", " \"\"\"\n", " This function determines the K-channel gating dynamics.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " T = 22 # Temperature\n", " phi = 3.0**((T-36.0)/10) # Temperature-correction factor\n", " V_ = V-(-50) # Voltage baseline shift\n", " \n", " alpha_n = 0.02*(15.0 - V_)/(tf.exp((15.0 - V_)/5.0) - 1.0) # Alpha for the K-channel gating variable n\n", " beta_n = 0.5*tf.exp((10.0 - V_)/40.0) # Beta for the K-channel gating variable n\n", " \n", " t_n = 1.0/((alpha_n+beta_n)*phi) # Time constant for the K-channel gating variable n\n", " n_0 = alpha_n/(alpha_n+beta_n) # Steady-state value for the K-channel gating variable n\n", " \n", " return n_0, t_n\n", "\n", "\n", "def Na_prop(V):\n", " \"\"\"\n", " This function determines the Na-channel gating dynamics.\n", " \n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " T = 22 # Temperature \n", " phi = 3.0**((T-36)/10) # Temperature-correction factor\n", " V_ = V-(-50) # Voltage baseline shift\n", " \n", " alpha_m = 0.32*(13.0 - V_)/(tf.exp((13.0 - V_)/4.0) - 1.0) # Alpha for the Na-channel gating variable m\n", " beta_m = 0.28*(V_ - 40.0)/(tf.exp((V_ - 40.0)/5.0) - 1.0) # Beta for the Na-channel gating variable m\n", " \n", " alpha_h = 0.128*tf.exp((17.0 - V_)/18.0) # Alpha for the Na-channel gating variable h\n", " beta_h = 4.0/(tf.exp((40.0 - V_)/5.0) + 1.0) # Beta for the Na-channel gating variable h\n", " \n", " t_m = 1.0/((alpha_m+beta_m)*phi) # Time constant for the Na-channel gating variable m\n", " t_h = 1.0/((alpha_h+beta_h)*phi) # Time constant for the Na-channel gating variable h\n", " \n", " m_0 = alpha_m/(alpha_m+beta_m) # Steady-state value for the Na-channel gating variable m\n", " h_0 = alpha_h/(alpha_h+beta_h) # Steady-state value for the Na-channel gating variable h\n", " \n", " return m_0, t_m, h_0, t_h\n", "\n", "\n", "def A_prop(V):\n", " \"\"\"\n", " This function determines the Transient K-channel gating dynamics.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " T = 36 # Temperature\n", " \n", " phi = 3.0**((T-23.5)/10) # Temperature-correction factor\n", " \n", " m_0 = 1/(1+tf.exp(-(V+60.0)/8.5)) # Steady-state value for the Transient K-current gating variable m\n", " h_0 = 1/(1+tf.exp((V+78.0)/6.0)) # Steady-state value for the Transient K-current gating variable h\n", " \n", " tau_m = 1/(tf.exp((V+35.82)/19.69) + tf.exp(-(V+79.69)/12.7) + 0.37) / phi # Time constant for the Transient K-current gating variable m\n", " \n", " t1 = 1/(tf.exp((V+46.05)/5.0) + tf.exp(-(V+238.4)/37.45)) / phi \n", " t2 = (19.0/phi) * tf.ones(tf.shape(V),dtype=V.dtype)\n", " tau_h = tf.where(tf.less(V,-63.0),t1,t2) # Time constant for the Transient K-current gating variable h\n", " \n", " return m_0, tau_m, h_0, tau_h \n", "\n", "\n", "def Ca_prop(V):\n", " \"\"\"\n", " This function determines the Calcium-channel gating dynamics.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " m_0 = 1/(1+tf.exp(-(V+20.0)/6.5)) # Steady-state value for the Calcium-channel gating variable m\n", " h_0 = 1/(1+tf.exp((V+25.0)/12)) # Steady-state value for the Calcium-channel gating variable h\n", " \n", " tau_m = 1.5 # Time constant for the Calcium-channel gating variable m\n", " tau_h = 0.3*tf.exp((V-40.0)/13.0) + 0.002*tf.exp((60.0-V)/29) # Time constant for the Calcium-channel gating variable h\n", " \n", " return m_0, tau_m, h_0, tau_h\n", "\n", "def KCa_prop(Ca):\n", " \"\"\"\n", " This function determines the Calcium-dependent K-channel gating dynamics.\n", " \n", " Parameters:\n", " -----------\n", " Ca: float\n", " The concentration of Calcium.\n", " \"\"\"\n", " T = 26 # Temperature\n", " \n", " phi = 2.3**((T-23.0)/10) # Temperature-correction factor\n", " \n", " alpha = 0.01*Ca # Alpha for the Calcium-dependent K-channel gating variable m\n", " beta = 0.02 # Beta for the Calcium-dependent K-channel gating variable m\n", " \n", " tau_m = 1/((alpha+beta)*phi) # Time constant for the Calcium-dependent K-channel gating variable\n", " m_0 = alpha/(alpha+beta) # Steady-state value for the Calcium-dependent K-channel gating variable\n", " \n", " return m_0, tau_m" ] }, { "cell_type": "markdown", "metadata": { "id": "JO8i_jXgtYrE" }, "source": [ "#### Defining Channel Currents, Synaptic Potentials, and Input Currents (Injection Current)\n", "\n", "Just like the normal hodgkin-huxley network, we define the different functions that evaluate the different neuronal currents." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "id": "fZA3r8sgtYrE" }, "outputs": [], "source": [ "# NEURONAL CURRENTS\n", "\n", "# Common Currents #\n", "\n", "def I_K(V, n):\n", " \"\"\"\n", " This function determines the K-channel current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " n: float \n", " The K-channel gating variable n.\n", " \"\"\"\n", " return g_K * n**4 * (V - E_K)\n", "\n", "def I_L(V):\n", " \"\"\"\n", " This function determines the Leak current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " return g_L * (V - E_L)\n", "\n", "def I_KL(V):\n", " \"\"\"\n", " This function determines the potassium-leak current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " \"\"\"\n", " return g_KL * (V - E_KL)\n", "\n", "# PN Currents #\n", "\n", "def I_Na(V, m, h):\n", " \"\"\"\n", " This function determines the Na-channel current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " m: float\n", " The Na-channel gating variable m.\n", " h: float\n", " The Na-channel gating variable h.\n", " \"\"\"\n", " return g_Na * m**3 * h * (V - E_Na)\n", "\n", "def I_A(V, m, h):\n", " \"\"\"\n", " This function determines the Transient K-channel current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " m: float\n", " The Transient K-channel gating variable m.\n", " h: float\n", " The Transient K-channel gating variable h.\n", " \"\"\"\n", " return g_A * m**4 * h * (V - E_A)\n", "\n", "# LN Currents #\n", "\n", "def I_Ca(V, m, h):\n", " \"\"\"\n", " This function determines the Calcium-channel current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " m: float\n", " The Calcium-channel gating variable m.\n", " h: float\n", " The Calcium-channel gating variable h.\n", " \"\"\"\n", " return g_Ca * m**2 * h * (V - E_Ca)\n", "\n", "def I_KCa(V, m):\n", " \"\"\"\n", " This function determines the Calcium-dependent K-channel current.\n", "\n", " Parameters:\n", " -----------\n", " V: float\n", " The membrane potential.\n", " m: float\n", " The Calcium-dependent K-channel gating variable m.\n", " \"\"\"\n", " T = 23 # Temperature\n", " phi = 2.3**((T-23.0)/10) # Temperature-correction factor\n", " return g_KCa * m * phi * (V - E_KCa)\n", "\n", "# SYNAPTIC CURRENTS\n", "\n", "def I_ach(o,V):\n", " \"\"\"\n", " This function returns the synaptic current for the Acetylcholine (Ach) synapses for each neuron.\n", "\n", " Parameters:\n", " -----------\n", " o: float\n", " The fraction of open acetylcholine channels for each synapse.\n", " V: float\n", " The membrane potential of the postsynaptic neuron.\n", " \"\"\"\n", " o_ = tf.constant([0.0]*n_n**2,dtype=tf.float64) # Initialize the flattened matrix to store the synaptic open fractions\n", " ind = tf.boolean_mask(tf.range(n_n**2),ach_mat.reshape(-1) == 1) # Get the indices of the synapses that exist\n", " o_ = tf.tensor_scatter_nd_update(o_,tf.reshape(ind,[-1,1]),o) # Update the flattened open fraction matrix\n", " o_ = tf.transpose(tf.reshape(o_,(n_n,n_n))) # Reshape and Transpose the matrix to be able to multiply it with the conductance matrix\n", " return tf.reduce_sum(tf.transpose((o_*(V-E_ach))*g_ach),1) # Calculate the synaptic current\n", "\n", "def I_fgaba(o,V):\n", " \"\"\"\n", " This function returns the synaptic current for the GABA synapses for each neuron.\n", "\n", " Parameters:\n", " -----------\n", " o: float\n", " The fraction of open GABA channels for each synapse.\n", " V: float\n", " The membrane potential of the postsynaptic neuron.\n", " \"\"\"\n", " o_ = tf.constant([0.0]*n_n**2,dtype=tf.float64) # Initialize the flattened matrix to store the synaptic open fractions\n", " ind = tf.boolean_mask(tf.range(n_n**2),fgaba_mat.reshape(-1) == 1) # Get the indices of the synapses that exist\n", " o_ = tf.tensor_scatter_nd_update(o_,tf.reshape(ind,[-1,1]),o) # Update the flattened open fraction matrix\n", " o_ = tf.transpose(tf.reshape(o_,(n_n,n_n))) # Reshape and Transpose the matrix to be able to multiply it with the conductance matrix\n", " return tf.reduce_sum(tf.transpose((o_*(V-E_fgaba))*g_fgaba),1) # Calculate the synaptic current\n", "\n", "# INPUT CURRENTS\n", "\n", "def I_inj_t(t):\n", " \"\"\"\n", " This function returns the external current to be injected into the network at any time step from the current_input matrix.\n", "\n", " Parameters:\n", " -----------\n", " t: float\n", " The time at which the current injection is being performed.\n", " \"\"\"\n", " # Turn indices to integer and extract from matrix\n", " index = tf.cast(t/sim_res,tf.int32)\n", " return tf.constant(current_input.T,dtype=tf.float64)[index]" ] }, { "cell_type": "markdown", "metadata": { "id": "rqKPEPDztYrF" }, "source": [ "#### Putting Together the Dynamics\n", "\n", "The construction of the function that evaluates the dynamical equations is similar to the normal HH Model but we have a small difference. That is, not all neurons share the same dynamical equations, they have some common terms and some terms that are unique. The procedure we deal with this is briefly explained below.\n", "\n", "$$\\frac{d\\vec{X_A}}{dt} = f(\\vec{X_{A_\\alpha}},\\vec{X_{A_\\beta}}...)+g_A(\\vec{X_{A_\\gamma}}...)\\ \\ \\ \\ \\ \\ \\frac{d\\vec{X_B}}{dt} = f(\\vec{X_{B_\\alpha}},\\vec{X_{B_\\beta}}...)+g_B(\\vec{X_{B_\\gamma}}...)$$\n", "$$To\\ evaluate\\ \\frac{d\\vec{X}}{dt}\\ where\\ \\vec{X}=[\\vec{X_A},\\vec{X_B}], Find:$$\n", "\n", "$$\\Big(\\frac{dX_A}{dt}\\Big)_{unique}=g_A(\\vec{X_{A_\\gamma}}..)\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\Big(\\frac{dX_B}{dt}\\Big)_{unique}=g_B(\\vec{X_{B_\\gamma}}..)$$\n", " \n", "$$\\Big(\\frac{dX}{dt}\\Big)_{unique}=\\Big[\\Big(\\frac{dX_A}{dt}\\Big)_{unique},\\Big(\\frac{dX_B}{dt}\\Big)_{unique}\\Big]$$\n", "\n", "\n", "$$\\frac{dX}{dt}=\\Big(\\frac{dX}{dt}\\Big)_{unique}+f(\\vec{X_{\\alpha}},\\vec{X_{\\beta}}...)$$\n", "\n", "This way, we can minimize the number of computations required for the simulation and all the computations are highly parallelizeable by TensorFlow. As for the vector we follow the convention given below:\n", "\n", "* Voltage(PN)[90]\n", "* Voltage(LN)[30]\n", "* K-gating(ALL)[120]\n", "* Na-activation-gating(PN)[90]\n", "* Na-inactivation-gating(PN)[90]\n", "* Transient-K-activation-gating(PN)[90]\n", "* Transient-K-inactivation-gating(PN)[90]\n", "* Ca-activation-gating(LN)[30]\n", "* Ca-inactivation-gating(LN)[30]\n", "* K(Ca)-gating(LN)[30]\n", "* Ca-concentration(LN)[30]\n", "* Acetylcholine Open Fraction[n_syn_ach]\n", "* GABAa Open Fraction[n_syn_fgaba]\n", "* Fire-times[120]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "id": "IJ1hvNv6tYrG" }, "outputs": [], "source": [ "def dXdt(X, t): # X is the state vector\n", " \n", " V_p = X[0 : p_n] # Voltage(PN)\n", " V_l = X[p_n : n_n] # Voltage(LN)\n", " \n", " n_K = X[n_n : 2*n_n] # K-gating(ALL)\n", " \n", " m_Na = X[2*n_n : 2*n_n + p_n] # Na-activation-gating(PN)\n", " h_Na = X[2*n_n + p_n : 2*n_n + 2*p_n] # Na-inactivation-gating(PN)\n", "\n", " m_A = X[2*n_n + 2*p_n : 2*n_n + 3*p_n] # Transient-K-activation-gating(PN)\n", " h_A = X[2*n_n + 3*p_n : 2*n_n + 4*p_n] # Transient-K-inactivation-gating(PN)\n", " \n", " m_Ca = X[2*n_n + 4*p_n : 2*n_n + 4*p_n + l_n] # Ca-activation-gating(LN)\n", " h_Ca = X[2*n_n + 4*p_n + l_n: 2*n_n + 4*p_n + 2*l_n] # Ca-inactivation-gating(LN)\n", " \n", " m_KCa = X[2*n_n + 4*p_n + 2*l_n : 2*n_n + 4*p_n + 3*l_n] # K(Ca)-gating(LN)\n", " Ca = X[2*n_n + 4*p_n + 3*l_n: 2*n_n + 4*p_n + 4*l_n] # Ca-concentration(LN)\n", "\n", " o_ach = X[6*n_n : 6*n_n + n_syn_ach] # Acetylcholine Open Fraction\n", " o_fgaba = X[6*n_n + n_syn_ach : 6*n_n + n_syn_ach + n_syn_fgaba] # GABAa Open Fraction\n", " \n", " fire_t = X[-n_n:] # Fire-times\n", " \n", " V = X[:n_n] # Overall Voltage (PN + LN)\n", " \n", " \n", " # Evaluate Differentials for Gating variables and Ca concentration\n", " \n", " n0,tn = K_prop(V) # Calculate the dynamics of the K-channel gating variable n for each neuron\n", " \n", " dn_k = - (1.0/tn)*(n_K-n0) # The derivative of the K-channel gating variable n for each neuron\n", " \n", " m0,tm,h0,th = Na_prop(V_p) # Calculate the dynamics of the Na-channel gating variables m, h for each neuron\n", " \n", " dm_Na = - (1.0/tm)*(m_Na-m0) # The derivative of the Na-channel gating variable m for each neuron\n", " dh_Na = - (1.0/th)*(h_Na-h0) # The derivative of the Na-channel gating variable h for each neuron\n", "\n", " m0,tm,h0,th = A_prop(V_p) # Calculate the dynamics of the transient K-channel gating variables m, h for each neuron\n", " \n", " dm_A = - (1.0/tm)*(m_A-m0) # The derivative of the transient K-channel gating variable m for each neuron\n", " dh_A = - (1.0/th)*(h_A-h0) # The derivative of the transient K-channel gating variable h for each neuron\n", " \n", " m0,tm,h0,th = Ca_prop(V_l) # Calculate the dynamics of the Ca-channel gating variables m, h for each neuron\n", " \n", " dm_Ca = - (1.0/tm)*(m_Ca-m0) # The derivative of the Ca-channel gating variable m for each neuron\n", " dh_Ca = - (1.0/th)*(h_Ca-h0) # The derivative of the Ca-channel gating variable h for each neuron\n", " \n", " m0,tm = KCa_prop(Ca) # Calculate the dynamics of the K(Ca)-channel gating variable m for each neuron\n", " \n", " dm_KCa = - (1.0/tm)*(m_KCa-m0) # The derivative of the K(Ca)-channel gating variable m for each neuron\n", " \n", " dCa = - np.array(A_Ca)*I_Ca(V_l,m_Ca,h_Ca) - (Ca - Ca0)/t_Ca # The derivative of the Ca-concentration for each neuron\n", " \n", " # Evaluate differential for Voltage\n", " \n", " # The dynamical equation for voltage has both unique and common parts.\n", " # Thus, as discussed above, we first evaluate the unique parts of Cm*dV/dT for LNs and PNs.\n", " \n", " CmdV_p = - I_Na(V_p, m_Na, h_Na) - I_A(V_p, m_A, h_A) \n", " CmdV_l = - I_Ca(V_l, m_Ca, h_Ca) - I_KCa(V_l, m_KCa)\n", " \n", " # Once we have that, we merge the two into a single 120-vector.\n", " \n", " CmdV = tf.concat([CmdV_p,CmdV_l],0)\n", " \n", " # Finally we add the common currents and divide by Cm to get dV/dt.\n", " \n", " dV = (I_inj_t(t) + CmdV - I_K(V, n_K) - I_L(V) - I_KL(V) - I_ach(o_ach,V) - I_fgaba(o_fgaba,V)) / C_m # The derivative of the membrane potential for all of the neurons\n", " \n", " # Evaluate dynamics in synapses\n", " \n", " A_ = tf.constant(A,dtype=tf.float64) # Get the synaptic response strengths of the pre-synaptic neurons\n", " Z_ = tf.zeros(tf.shape(A_),dtype=tf.float64) # Create a zero matrix of the same size as A_\n", " \n", " T_ach = tf.where(tf.logical_and(tf.greater(t,fire_t+t_delay),tf.less(t,fire_t+t_max+t_delay)),A_,Z_) # Find which synapses would have received an presynaptic spike in the past window and assign them the corresponding synaptic response strength\n", " T_ach = tf.multiply(tf.constant(ach_mat,dtype=tf.float64),T_ach) # Find the postsynaptic neurons that would have received an presynaptic spike in the past window\n", " T_ach = tf.boolean_mask(tf.reshape(T_ach,(-1,)),ach_mat.reshape(-1) == 1) # Get the pre-synaptic activation function for only the existing synapses\n", " \n", " do_achdt = alp_ach*(1.0-o_ach)*T_ach - bet_ach*o_ach # Calculate the derivative of the open fraction of the acetylcholine synapses\n", " \n", " ## Updation for o_gaba ##\n", " \n", " T_gaba = 1.0/(1.0+tf.exp(-(V-V0)/sigma)) # Calculate the presynaptic activation function for all n_n neurons\n", " T_gaba = tf.multiply(tf.constant(fgaba_mat,dtype=tf.float64),T_gaba) # Find the postsynaptic neurons that would have received an presynaptic spike in the past window\n", " T_gaba = tf.boolean_mask(tf.reshape(T_gaba,(-1,)),fgaba_mat.reshape(-1) == 1) # Get the pre-synaptic activation function for only the existing synapses\n", " \n", " do_fgabadt = alp_fgaba*(1.0-o_fgaba)*T_gaba - bet_fgaba*o_fgaba # Calculate the derivative of the open fraction of the GABAa synapses\n", " \n", " dfdt = tf.zeros(tf.shape(fire_t),dtype=fire_t.dtype) # zero change in fire_t as it will be updated by the modified integrator\n", "\n", " # Combine to a single vector\n", " \n", " out = tf.concat([dV, dn_k,\n", " dm_Na, dh_Na,\n", " dm_A, dh_A,\n", " dm_Ca, dh_Ca,\n", " dm_KCa, \n", " dCa, do_achdt,\n", " do_fgabadt, dfdt ],0)\n", " return out" ] }, { "cell_type": "markdown", "metadata": { "id": "PVA94WUstYrH" }, "source": [ "#### Creating the Current Input and Run the Simulation\n", "\n", "We will run an 1000 ms simulation where we will give input to randomly chosen 33% of the neurons. The input will be an saturating increase to 10 from 100 ms to 600 ms and an exponetial decrease to 0 after 600 ms. " ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "id": "pw75DOE_tYrH" }, "outputs": [], "source": [ "current_input = np.zeros((n_n,t.shape[0]))\n", "\n", "# Create the input shape\n", "\n", "y = np.where(t<600,(1-np.exp(-(t-100)/75)),0.9996*np.exp(-(t-600)/150))\n", "y = np.where(t<100,np.zeros(t.shape),y)\n", "\n", "# Randomly choose 33% indices from 120\n", "\n", "p_input = 0.33\n", "input_neurons = np.random.choice(np.array(range(n_n)),int(p_input*n_n),replace=False)\n", "\n", "# Assign input shape to chosen indices\n", "\n", "current_input[input_neurons,:]= 10*y" ] }, { "cell_type": "markdown", "metadata": { "id": "EvI85GvYtYrH" }, "source": [ "#### Create the initial state vector and add some jitter to break symmetry\n", "\n", "We create the initial state vector, initializing voltage to $-70\\ mV$, gating variables and open fractions to $0.0$, and calcium concentration to $2.4\\times10^{-4}$ and add 1% gaussian noise to the data." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "id": "UdyPHD7LtYrH" }, "outputs": [], "source": [ "state_vector = [-70]* n_n + [0.0]* (n_n + 4*p_n + 3*l_n) + [2.4*(10**(-4))]*l_n + [0]*(n_syn_ach+n_syn_fgaba) + [-(sim_time+1)]*n_n\n", "state_vector = np.array(state_vector)\n", "state_vector = state_vector + 0.01*state_vector*np.random.normal(size=state_vector.shape)\n", "init_state = tf.constant(state_vector, dtype=tf.float64)" ] }, { "cell_type": "markdown", "metadata": { "id": "rBokuhpstYrI" }, "source": [ "#### Running the simulation and Interpreting the Output" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Note: The following cell can take a few minutes to run the simulation depending on your device.*" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5GPgv5OltYrI", "outputId": "0391e0bb-c97e-44f7-c1a0-10242de9cb79" }, "outputs": [], "source": [ "state = tf_int.odeint(dXdt, init_state, t, n_n, F_b) # Solve the differential equation\n", "\n", "with tf.Session() as sess: # Run the simulation\n", " state = sess.run(state)\n", " sess.close()" ] }, { "cell_type": "markdown", "metadata": { "id": "acMNvxDbtYrJ" }, "source": [ "To visualize the data, we plot the voltage traces of the PNs (Neurons 0 to 89) and LNs (Neurons 90 to 119) as a Voltage vs Time heatmap, peaks in the data are the action potentials." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 441 }, "id": "IGdYkVrDtYrJ", "outputId": "8d5d5127-0c29-40f4-fa2c-06c682d388cf", "scrolled": false }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the membrane potentials for the PNs\n", "plt.figure(figsize=(12,6))\n", "sns.heatmap(state[::100,:90].T,xticklabels=100,yticklabels=5,cmap='Greys')\n", "plt.xlabel(\"Time (in ms)\")\n", "plt.ylabel(\"Projection Neuron Number\")\n", "plt.title(\"Voltage vs Time Heatmap for Projection Neurons (PNs)\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 441 }, "id": "Psi6nmqStYrK", "outputId": "ed8f55cf-51d2-435f-e347-c5e808ec219b" }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the membrane potentials for the LNs\n", "plt.figure(figsize=(12,6))\n", "sns.heatmap(state[::100,90:120].T,xticklabels=100,yticklabels=5,cmap='Greys')\n", "plt.xlabel(\"Time (in ms)\")\n", "plt.ylabel(\"Local Interneuron Number\")\n", "plt.title(\"Voltage vs Time Heatmap for Local Interneurons (LNs)\")\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "id": "yhq1s5yItYrK" }, "source": [ "Thus, We are capable of making models of complex realistic networks of neurons in the brains of living organisms. As an **Exercise** implement the batch and caller-runner system for this example as taught in day 5. Use this to implement a simulation of successive box input to 1/3rd of the neurons for a period of 2 seconds. Also try introducing variability to the parameters of the neurons." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "##################################\n", "# Problem Hint for the Exercise: #\n", "##################################\n", "\n", "# Take a look at the \"Implementing a Runner and a Caller\" section of the Day 5 notebook.\n", "\n", "# Note the changes needed in the runner.py to run the a simulation in batches. \n", "# Try to copy and paste the appropriate code section from this notebook into the runner.py file.\n", "# Ask yourself: Do I need to change anything in the caller?" ] } ], "metadata": { "colab": { "name": "Example.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "vscode": { "interpreter": { "hash": "ad2bdc8ecc057115af97d19610ffacc2b4e99fae6737bb82f5d7fb13d2f2c186" } } }, "nbformat": 4, "nbformat_minor": 1 }